/**
 * 认证服务模块
 * 提供用户登录、注销、信息获取等功能
 */

const { request } = require('../utils/request.js');

const authService = {
  /**
   * 获取用户信息
   * @returns {Promise} 用户信息
   */
  async getUserInfo() {
    return request('/api/wechat/userinfo', {
      method: 'GET'
    });
  },
  
  /**
   * 退出登录
   * @returns {Promise} 退出结果
   */
  async logout() {
    return request('/api/wechat/logout', {
      method: 'POST'
    });
  },
  
  /**
   * 检查是否已登录
   * @returns {boolean} 是否已登录
   */
  isLoggedIn() {
    const app = getApp();
    return !!app.globalData.session_token;
  },
  
  /**
   * 获取当前 token
   * @returns {string} session token
   */
  getToken() {
    return uni.getStorageSync('session_token');
  },
  
  /**
   * 获取当前用户信息（从全局数据）
   * @returns {object} 用户信息
   */
  getCurrentUser() {
    const app = getApp();
    return app.globalData.userInfo;
  },
  
  /**
   * 触发登录流程
   */
  triggerLogin() {
    const app = getApp();
    if (app && typeof app.login === 'function') {
      app.login();
    } else {
      console.error('App.login 方法不存在，请检查 App.vue');
      uni.showToast({
        title: '登录功能异常',
        icon: 'none'
      });
    }
  }
};

module.exports = authService;

